home *** CD-ROM | disk | FTP | other *** search
- property pSpr, pOrigMember, pDraggingMember, pDragging, pOrigLoc, pOrigReg, pIngredient, pTimer
-
- on beginSprite me
- pSpr = sprite(me.spriteNum)
- pOrigMember = pSpr.member
- pDraggingMember = nextMember(pOrigMember)
- pOrigLoc = pSpr.loc
- pIngredient = #spoon
- end
-
- on mouseDown me
- global gSoundFXchan, gThrottleRate
- if pDragging then
- mixableSprite = checkIfMixable(me)
- if mixableSprite then
- sendSprite(mixableSprite, #mPopTop)
- startMixing = nowTicks()
- spoonRate = min(gThrottleRate, 3)
- repeat while the stillDown and checkIfMixable(me)
- if not soundBusy(gSoundFXchan) then
- if sendSprite(mixableSprite, #mHasIce) then
- soundFX("stir_icewater_in_mglass", 0, 0)
- else
- soundFX("stir_water_in_mglass", 0, 0)
- end if
- end if
- repeat with X = 1 to 10
- if ticksSince(startMixing) > (spoonRate * X) then
- pSpr.member = nextMember(pDraggingMember, X)
- else
- X = X - 1
- end if
- checkElapsedTime()
- updateStage()
- if X = 10 then
- startMixing = nowTicks()
- end if
- end repeat
- end repeat
- stopSoundFX()
- sendSprite(mixableSprite, #mStirred)
- pSpr.member = pDraggingMember
- updateStage()
- else
- mReplaceIt(me)
- end if
- else
- if draggingAnything() then
- replaceDraggingAnything()
- exit
- end if
- pSpr.member = pDraggingMember
- mPickMeUp(me)
- repeat while the stillDown
- checkElapsedTime()
- updateStage()
- end repeat
- end if
- end
-
- on mReplaceIt me
- if not pSpr.pDragging then
- exit
- end if
- pSpr.member = pOrigMember
- pSpr.loc = pOrigLoc
- pSpr.visible = 1
- pDragging = 0
- restoreHelpPointerState()
- resetCursor()
- pSpr.locZ = me.spriteNum
- removeFromActorList(pSpr)
- pTimer = nowTicks()
- end
-
- on endSprite me
- removeFromActorList(pSpr)
- end
-
- on mouseUpOutSide
- nothing()
- end
-
- on checkIfMixable me
- global gBarGlassSprites, gMixingVesselsList
- mixableSprites = [49, 51, 53, 79, 83, 87]
- foundSprite = 0
- repeat with thisSprite in mixableSprites
- if sendSprite(thisSprite, #mOverItem, pSpr, the mouseLoc) then
- sendSprite(thisSprite, #mPopTop)
- foundSprite = thisSprite
- next repeat
- end if
- sendSprite(thisSprite, #mReplaceTop)
- end repeat
- return foundSprite
- end
-
- on mPickMeUp me
- storeLastIngredient(pIngredient)
- replaceDraggingAnything()
- returnToBar(VOID, 1)
- storeHelpPointerState()
- hideToolTip()
- hideCursor()
- pSpr.member = pDraggingMember
- pDragging = 1
- addToActorList(pSpr)
- updateStage()
- pSpr.locZ = 125
- end
-
- on stepFrame me
- if inMenuMode() then
- exit
- end if
- checkIfMixable(me)
- pSpr.loc = the mouseLoc
- end
-
- on mouseUp me
- nothing()
- end
-
- on mouseEnter me
- pTimer = nowTicks()
- if not draggingAnything() then
- showToolTip(pSpr, #spoon)
- end if
- end
-
- on mouseLeave me
- if not draggingAnything() then
- hideToolTip()
- end if
- end
-
- on mouseWithin
- if draggingAnything() then
- else
- if tipTickRange(pTimer) and not pDragging then
- forceToolTip(pSpr, #spoon)
- else
- dismissToolTip()
- end if
- end if
- end
-
- on mDoneDragging
- nothing()
- end
-